package com.aspose.cells;

class zbbg implements zaht {
   private int a;
   private int[] b;

   zbbg(int var1, int[] var2) {
      this.a = var1;
      this.b = var2;

      for(int var3 = 1; var3 < var2.length; ++var3) {
         var2[var3] += var2[var3 - 1];
      }

   }

   public int a(int var1) {
      if (this.b != null && var1 < this.b.length) {
         return var1 > 0 ? this.b[var1] - this.b[var1 - 1] : this.b[0];
      } else {
         return this.a;
      }
   }

   public int a(int var1, int var2) {
      if (this.b != null) {
         if (var2 < this.b.length) {
            if (var1 == 0) {
               return this.b[var2];
            }

            return this.b[var2] - this.b[var1 - 1];
         }

         if (var1 == 0) {
            if (this.a == 0) {
               return this.b[this.b.length - 1];
            }

            return this.b[this.b.length - 1] + (var2 - this.b.length + 1) * this.a;
         }

         if (var1 < this.b.length) {
            if (this.a == 0) {
               return this.b[this.b.length - 1] - this.b[var1 - 1];
            }

            return this.b[this.b.length - 1] - this.b[var1 - 1] + (var2 - this.b.length + 1) * this.a;
         }
      }

      return this.a == 0 ? 0 : (var2 - var1 + 1) * this.a;
   }

   public void a(int[] var1) {
      int var2 = var1[0];
      int var3;
      int var4;
      if (var1[2] < 0) {
         var3 = -var1[2] - var1[1];
         if (var3 <= 0) {
            var1[2] = -var3;
            var1[1] = 0;
            this.a(var1);
            return;
         }

         --var2;
         if (var2 < 0) {
            var1[1] = 0;
            var1[2] = this.b == null ? this.a : this.b[0];
            return;
         }

         if (this.b == null) {
            if (this.a == 0) {
               return;
            }

            var4 = (var3 - 1) / this.a;
            if (var4 > var2) {
               var1[0] = 0;
               var1[1] = 0;
               var1[2] = this.a;
            } else {
               var3 -= var4 * this.a;
               var1[0] = var2 - var4;
               var1[1] = this.a - var3;
               var1[2] = var3;
            }

            return;
         }

         if (var2 >= this.b.length) {
            if (this.a != 0) {
               var4 = (var3 - 1) / this.a;
               var2 -= var4;
               if (var2 >= this.b.length) {
                  var3 -= var4 * this.a;
                  var1[0] = var2;
                  var1[1] = this.a - var3;
                  var1[2] = var3;
                  return;
               }

               var3 -= (var2 - this.b.length + 1) * this.a;
            }

            var2 = this.b.length - 1;
         }

         var3 = this.b[var2] - var3;
         if (var3 <= 0) {
            var1[0] = 0;
            var1[1] = 0;
            var1[2] = this.b[0];
            return;
         }

         --var2;

         while(var2 > -1) {
            if (var3 >= this.b[var2]) {
               var1[0] = var2 + 1;
               var1[1] = var3 - this.b[var2];
               var1[2] = this.b[var2 + 1] - var3;
               return;
            }

            --var2;
         }

         var1[0] = 0;
         var1[1] = var3;
         var1[2] = this.b[0] - var3;
      } else {
         var3 = var1[1] + var1[2];
         if (this.b != null && var2 < this.b.length) {
            if (var2 > 0) {
               var3 += this.b[var2 - 1];
            }

            while(var2 < this.b.length) {
               if (var3 <= this.b[var2]) {
                  var1[0] = var2;
                  var1[1] = var2 > 0 ? var3 - this.b[var2 - 1] : var3;
                  var1[2] = this.b[var2] - var3;
                  return;
               }

               ++var2;
            }

            var3 -= this.b[this.b.length - 1];
         }

         if (this.a == 0) {
            var1[0] = var2;
            var1[1] = var3;
            var1[2] = -var1[1];
            return;
         }

         var4 = (var3 - 1) / this.a;
         var3 -= var4 * this.a;
         var1[0] = var2 + var4;
         var1[1] = var3;
         var1[2] = this.a - var3;
      }

   }
}
